<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<meta name="generator" content="hevea 2.18">
<link rel="stylesheet" type="text/css" href="manual.css">
<title>Contents</title>
</head>
<body>
<a href="index.html"><img src="contents_motif.gif" alt="Up"></a>
<a href="foreword.html"><img src="next_motif.gif" alt="Next"></a>
<hr>
<h1 class="chapter" id="sec1">Contents</h1>
<ul class="ftoc1"><li class="li-toc">
<a href="index.html#sec6">Part&#XA0;I&#XA0;&#XA0;An introduction to OCaml</a>
<ul class="ftoc2"><li class="li-toc">
<a href="coreexamples.html#sec7">Chapter&#XA0;1&#XA0;&#XA0;The core language</a>
<ul class="ftoc3"><li class="li-toc">
<a href="coreexamples.html#sec8">1.1&#XA0;&#XA0;Basics</a>
</li><li class="li-toc"><a href="coreexamples.html#sec9">1.2&#XA0;&#XA0;Data types</a>
</li><li class="li-toc"><a href="coreexamples.html#sec10">1.3&#XA0;&#XA0;Functions as values</a>
</li><li class="li-toc"><a href="coreexamples.html#sec11">1.4&#XA0;&#XA0;Records and variants</a>
</li><li class="li-toc"><a href="coreexamples.html#sec12">1.5&#XA0;&#XA0;Imperative features</a>
</li><li class="li-toc"><a href="coreexamples.html#sec13">1.6&#XA0;&#XA0;Exceptions</a>
</li><li class="li-toc"><a href="coreexamples.html#sec14">1.7&#XA0;&#XA0;Symbolic processing of expressions</a>
</li><li class="li-toc"><a href="coreexamples.html#sec15">1.8&#XA0;&#XA0;Pretty-printing</a>
</li><li class="li-toc"><a href="coreexamples.html#sec16">1.9&#XA0;&#XA0;Standalone OCaml programs</a>
</li></ul>
</li><li class="li-toc"><a href="moduleexamples.html#sec17">Chapter&#XA0;2&#XA0;&#XA0;The module system</a>
<ul class="ftoc3"><li class="li-toc">
<a href="moduleexamples.html#sec18">2.1&#XA0;&#XA0;Structures</a>
</li><li class="li-toc"><a href="moduleexamples.html#sec19">2.2&#XA0;&#XA0;Signatures</a>
</li><li class="li-toc"><a href="moduleexamples.html#sec20">2.3&#XA0;&#XA0;Functors</a>
</li><li class="li-toc"><a href="moduleexamples.html#sec21">2.4&#XA0;&#XA0;Functors and type abstraction</a>
</li><li class="li-toc"><a href="moduleexamples.html#sec22">2.5&#XA0;&#XA0;Modules and separate compilation</a>
</li></ul>
</li><li class="li-toc"><a href="objectexamples.html#sec23">Chapter&#XA0;3&#XA0;&#XA0;Objects in OCaml</a>
<ul class="ftoc3"><li class="li-toc">
<a href="objectexamples.html#sec24">3.1&#XA0;&#XA0;Classes and objects</a>
</li><li class="li-toc"><a href="objectexamples.html#sec25">3.2&#XA0;&#XA0;Immediate objects</a>
</li><li class="li-toc"><a href="objectexamples.html#sec26">3.3&#XA0;&#XA0;Reference to self</a>
</li><li class="li-toc"><a href="objectexamples.html#sec27">3.4&#XA0;&#XA0;Initializers</a>
</li><li class="li-toc"><a href="objectexamples.html#sec28">3.5&#XA0;&#XA0;Virtual methods</a>
</li><li class="li-toc"><a href="objectexamples.html#sec29">3.6&#XA0;&#XA0;Private methods</a>
</li><li class="li-toc"><a href="objectexamples.html#sec30">3.7&#XA0;&#XA0;Class interfaces</a>
</li><li class="li-toc"><a href="objectexamples.html#sec31">3.8&#XA0;&#XA0;Inheritance</a>
</li><li class="li-toc"><a href="objectexamples.html#sec32">3.9&#XA0;&#XA0;Multiple inheritance</a>
</li><li class="li-toc"><a href="objectexamples.html#sec33">3.10&#XA0;&#XA0;Parameterized classes</a>
</li><li class="li-toc"><a href="objectexamples.html#sec34">3.11&#XA0;&#XA0;Polymorphic methods</a>
</li><li class="li-toc"><a href="objectexamples.html#sec35">3.12&#XA0;&#XA0;Using coercions</a>
</li><li class="li-toc"><a href="objectexamples.html#sec36">3.13&#XA0;&#XA0;Functional objects</a>
</li><li class="li-toc"><a href="objectexamples.html#sec37">3.14&#XA0;&#XA0;Cloning objects</a>
</li><li class="li-toc"><a href="objectexamples.html#sec38">3.15&#XA0;&#XA0;Recursive classes</a>
</li><li class="li-toc"><a href="objectexamples.html#sec39">3.16&#XA0;&#XA0;Binary methods</a>
</li><li class="li-toc"><a href="objectexamples.html#sec40">3.17&#XA0;&#XA0;Friends</a>
</li></ul>
</li><li class="li-toc"><a href="lablexamples.html#sec41">Chapter&#XA0;4&#XA0;&#XA0;Labels and variants</a>
<ul class="ftoc3"><li class="li-toc">
<a href="lablexamples.html#sec42">4.1&#XA0;&#XA0;Labels</a>
<ul class="ftoc4"><li class="li-toc">
<a href="lablexamples.html#sec43">4.1.1&#XA0;&#XA0;Optional arguments</a>
</li><li class="li-toc"><a href="lablexamples.html#sec44">4.1.2&#XA0;&#XA0;Labels and type inference</a>
</li><li class="li-toc"><a href="lablexamples.html#sec45">4.1.3&#XA0;&#XA0;Suggestions for labeling</a>
</li></ul>
</li><li class="li-toc"><a href="lablexamples.html#sec46">4.2&#XA0;&#XA0;Polymorphic variants</a>
<ul class="ftoc4"><li class="li-toc">
<a href="lablexamples.html#sec49">4.2.1&#XA0;&#XA0;Weaknesses of polymorphic variants</a>
</li></ul>
</li></ul>
</li><li class="li-toc"><a href="polymorphism.html#sec50">Chapter&#XA0;5&#XA0;&#XA0;Polymorphism and its limitations</a>
<ul class="ftoc3"><li class="li-toc">
<a href="polymorphism.html#sec51">5.1&#XA0;&#XA0;Weak polymorphism and mutation</a>
<ul class="ftoc4"><li class="li-toc">
<a href="polymorphism.html#sec52">5.1.1&#XA0;&#XA0;Weakly polymorphic types</a>
</li><li class="li-toc"><a href="polymorphism.html#sec53">5.1.2&#XA0;&#XA0;The value restriction</a>
</li><li class="li-toc"><a href="polymorphism.html#sec54">5.1.3&#XA0;&#XA0;The relaxed value restriction</a>
</li><li class="li-toc"><a href="polymorphism.html#sec55">5.1.4&#XA0;&#XA0;Variance and value restriction</a>
</li><li class="li-toc"><a href="polymorphism.html#sec56">5.1.5&#XA0;&#XA0;Abstract data types</a>
</li></ul>
</li><li class="li-toc"><a href="polymorphism.html#sec57">5.2&#XA0;&#XA0;Polymorphic recursion</a>
<ul class="ftoc4"><li class="li-toc">
<a href="polymorphism.html#sec58">5.2.1&#XA0;&#XA0;Explicitly polymorphic annotations</a>
</li><li class="li-toc"><a href="polymorphism.html#sec59">5.2.2&#XA0;&#XA0;More examples</a>
</li></ul>
</li><li class="li-toc"><a href="polymorphism.html#sec60">5.3&#XA0;&#XA0;Higher-rank polymorphic functions</a>
</li></ul>
</li><li class="li-toc"><a href="advexamples.html#sec61">Chapter&#XA0;6&#XA0;&#XA0;Advanced examples with classes and modules</a>
<ul class="ftoc3"><li class="li-toc">
<a href="advexamples.html#sec62">6.1&#XA0;&#XA0;Extended example: bank accounts</a>
</li><li class="li-toc"><a href="advexamples.html#sec63">6.2&#XA0;&#XA0;Simple modules as classes</a>
<ul class="ftoc4"><li class="li-toc">
<a href="advexamples.html#sec64">6.2.1&#XA0;&#XA0;Strings</a>
</li><li class="li-toc"><a href="advexamples.html#sec66">6.2.2&#XA0;&#XA0;Hashtbl</a>
</li><li class="li-toc"><a href="advexamples.html#sec67">6.2.3&#XA0;&#XA0;Sets</a>
</li></ul>
</li><li class="li-toc"><a href="advexamples.html#sec68">6.3&#XA0;&#XA0;The subject/observer pattern</a>
</li></ul>
</li></ul>
</li><li class="li-toc"><a href="index.html#sec69">Part&#XA0;II&#XA0;&#XA0;The OCaml language</a>
<ul class="ftoc2"><li class="li-toc">
<a href="language.html#sec70">Chapter&#XA0;7&#XA0;&#XA0;The OCaml language</a>
<ul class="ftoc3"><li class="li-toc">
<a href="lex.html#sec73">7.1&#XA0;&#XA0;Lexical conventions</a>
</li><li class="li-toc"><a href="values.html#sec86">7.2&#XA0;&#XA0;Values</a>
<ul class="ftoc4"><li class="li-toc">
<a href="values.html#sec87">7.2.1&#XA0;&#XA0;Base values</a>
</li><li class="li-toc"><a href="values.html#sec92">7.2.2&#XA0;&#XA0;Tuples</a>
</li><li class="li-toc"><a href="values.html#sec93">7.2.3&#XA0;&#XA0;Records</a>
</li><li class="li-toc"><a href="values.html#sec94">7.2.4&#XA0;&#XA0;Arrays</a>
</li><li class="li-toc"><a href="values.html#sec95">7.2.5&#XA0;&#XA0;Variant values</a>
</li><li class="li-toc"><a href="values.html#sec96">7.2.6&#XA0;&#XA0;Polymorphic variants</a>
</li><li class="li-toc"><a href="values.html#sec97">7.2.7&#XA0;&#XA0;Functions</a>
</li><li class="li-toc"><a href="values.html#sec98">7.2.8&#XA0;&#XA0;Objects</a>
</li></ul>
</li><li class="li-toc"><a href="names.html#sec99">7.3&#XA0;&#XA0;Names</a>
</li><li class="li-toc"><a href="types.html#sec102">7.4&#XA0;&#XA0;Type expressions</a>
</li><li class="li-toc"><a href="const.html#sec113">7.5&#XA0;&#XA0;Constants</a>
</li><li class="li-toc"><a href="patterns.html#sec114">7.6&#XA0;&#XA0;Patterns</a>
</li><li class="li-toc"><a href="expr.html#s%3Avalue-expr">7.7&#XA0;&#XA0;Expressions</a>
<ul class="ftoc4"><li class="li-toc">
<a href="expr.html#sec128">7.7.1&#XA0;&#XA0;Basic expressions</a>
</li><li class="li-toc"><a href="expr.html#sec137">7.7.2&#XA0;&#XA0;Control structures</a>
</li><li class="li-toc"><a href="expr.html#sec144">7.7.3&#XA0;&#XA0;Operations on data structures</a>
</li><li class="li-toc"><a href="expr.html#sec151">7.7.4&#XA0;&#XA0;Operators</a>
</li><li class="li-toc"><a href="expr.html#sec152">7.7.5&#XA0;&#XA0;Objects</a>
</li><li class="li-toc"><a href="expr.html#sec158">7.7.6&#XA0;&#XA0;Coercions</a>
</li><li class="li-toc"><a href="expr.html#sec162">7.7.7&#XA0;&#XA0;Other</a>
</li></ul>
</li><li class="li-toc"><a href="typedecl.html#sec167">7.8&#XA0;&#XA0;Type and exception definitions</a>
<ul class="ftoc4"><li class="li-toc">
<a href="typedecl.html#sec168">7.8.1&#XA0;&#XA0;Type definitions</a>
</li><li class="li-toc"><a href="typedecl.html#sec169">7.8.2&#XA0;&#XA0;Exception definitions</a>
</li></ul>
</li><li class="li-toc"><a href="classes.html#sec170">7.9&#XA0;&#XA0;Classes</a>
<ul class="ftoc4"><li class="li-toc">
<a href="classes.html#sec171">7.9.1&#XA0;&#XA0;Class types</a>
</li><li class="li-toc"><a href="classes.html#sec181">7.9.2&#XA0;&#XA0;Class expressions</a>
</li><li class="li-toc"><a href="classes.html#sec196">7.9.3&#XA0;&#XA0;Class definitions</a>
</li><li class="li-toc"><a href="classes.html#sec199">7.9.4&#XA0;&#XA0;Class specifications</a>
</li><li class="li-toc"><a href="classes.html#sec200">7.9.5&#XA0;&#XA0;Class type definitions</a>
</li></ul>
</li><li class="li-toc"><a href="modtypes.html#sec201">7.10&#XA0;&#XA0;Module types (module specifications)</a>
<ul class="ftoc4"><li class="li-toc">
<a href="modtypes.html#sec202">7.10.1&#XA0;&#XA0;Simple module types</a>
</li><li class="li-toc"><a href="modtypes.html#sec203">7.10.2&#XA0;&#XA0;Signatures</a>
</li><li class="li-toc"><a href="modtypes.html#sec213">7.10.3&#XA0;&#XA0;Functor types</a>
</li><li class="li-toc"><a href="modtypes.html#sec214">7.10.4&#XA0;&#XA0;The <span class="c003">with</span> operator</a>
</li></ul>
</li><li class="li-toc"><a href="modules.html#s%3Amodule-expr">7.11&#XA0;&#XA0;Module expressions (module implementations)</a>
<ul class="ftoc4"><li class="li-toc">
<a href="modules.html#sec216">7.11.1&#XA0;&#XA0;Simple module expressions</a>
</li><li class="li-toc"><a href="modules.html#sec217">7.11.2&#XA0;&#XA0;Structures</a>
</li><li class="li-toc"><a href="modules.html#sec227">7.11.3&#XA0;&#XA0;Functors</a>
</li></ul>
</li><li class="li-toc"><a href="compunit.html#sec230">7.12&#XA0;&#XA0;Compilation units</a>
</li></ul>
</li><li class="li-toc"><a href="extn.html#sec231">Chapter&#XA0;8&#XA0;&#XA0;Language extensions</a>
<ul class="ftoc3"><li class="li-toc">
<a href="extn.html#sec232">8.1&#XA0;&#XA0;Integer literals for types <span class="c003">int32</span>, <span class="c003">int64</span>
and <span class="c003">nativeint</span></a>
</li><li class="li-toc"><a href="extn.html#sec233">8.2&#XA0;&#XA0;Recursive definitions of values</a>
</li><li class="li-toc"><a href="extn.html#sec234">8.3&#XA0;&#XA0;Lazy patterns</a>
</li><li class="li-toc"><a href="extn.html#sec235">8.4&#XA0;&#XA0;Recursive modules</a>
</li><li class="li-toc"><a href="extn.html#sec236">8.5&#XA0;&#XA0;Private types</a>
<ul class="ftoc4"><li class="li-toc">
<a href="extn.html#sec237">8.5.1&#XA0;&#XA0;Private variant and record types</a>
</li><li class="li-toc"><a href="extn.html#sec238">8.5.2&#XA0;&#XA0;Private type abbreviations</a>
</li><li class="li-toc"><a href="extn.html#sec239">8.5.3&#XA0;&#XA0;Private row types</a>
</li></ul>
</li><li class="li-toc"><a href="extn.html#sec240">8.6&#XA0;&#XA0;Local opens for patterns</a>
</li><li class="li-toc"><a href="extn.html#sec241">8.7&#XA0;&#XA0;Object copy short notations</a>
</li><li class="li-toc"><a href="extn.html#sec242">8.8&#XA0;&#XA0;Locally abstract types</a>
</li><li class="li-toc"><a href="extn.html#sec244">8.9&#XA0;&#XA0;First-class modules</a>
</li><li class="li-toc"><a href="extn.html#sec247">8.10&#XA0;&#XA0;Recovering the type of a module</a>
</li><li class="li-toc"><a href="extn.html#sec248">8.11&#XA0;&#XA0;Substituting inside a signature</a>
</li><li class="li-toc"><a href="extn.html#sec249">8.12&#XA0;&#XA0;Type-level module aliases</a>
</li><li class="li-toc"><a href="extn.html#sec250">8.13&#XA0;&#XA0;Overriding in open statements</a>
</li><li class="li-toc"><a href="extn.html#sec251">8.14&#XA0;&#XA0;Generalized algebraic datatypes</a>
</li><li class="li-toc"><a href="extn.html#sec258">8.15&#XA0;&#XA0;Syntax for Bigarray access</a>
</li><li class="li-toc"><a href="extn.html#sec259">8.16&#XA0;&#XA0;Attributes</a>
<ul class="ftoc4"><li class="li-toc">
<a href="extn.html#sec260">8.16.1&#XA0;&#XA0;Built-in attributes</a>
</li></ul>
</li><li class="li-toc"><a href="extn.html#sec261">8.17&#XA0;&#XA0;Extension nodes</a>
<ul class="ftoc4"><li class="li-toc">
<a href="extn.html#sec262">8.17.1&#XA0;&#XA0;Built-in extension nodes</a>
</li></ul>
</li><li class="li-toc"><a href="extn.html#sec263">8.18&#XA0;&#XA0;Quoted strings</a>
</li><li class="li-toc"><a href="extn.html#sec264">8.19&#XA0;&#XA0;Exception cases in pattern matching</a>
</li><li class="li-toc"><a href="extn.html#sec265">8.20&#XA0;&#XA0;Extensible variant types</a>
<ul class="ftoc4"><li class="li-toc">
<a href="extn.html#sec266">8.20.1&#XA0;&#XA0;Private extensible variant types</a>
</li></ul>
</li><li class="li-toc"><a href="extn.html#sec267">8.21&#XA0;&#XA0;Generative functors</a>
</li><li class="li-toc"><a href="extn.html#sec268">8.22&#XA0;&#XA0;Extension-only syntax</a>
<ul class="ftoc4"><li class="li-toc">
<a href="extn.html#sec269">8.22.1&#XA0;&#XA0;Extension operators</a>
</li><li class="li-toc"><a href="extn.html#sec270">8.22.2&#XA0;&#XA0;Extension literals</a>
</li></ul>
</li><li class="li-toc"><a href="extn.html#sec271">8.23&#XA0;&#XA0;Inline records</a>
</li><li class="li-toc"><a href="extn.html#sec272">8.24&#XA0;&#XA0;Local exceptions</a>
</li><li class="li-toc"><a href="extn.html#sec273">8.25&#XA0;&#XA0;Documentation comments</a>
<ul class="ftoc4"><li class="li-toc">
<a href="extn.html#sec274">8.25.1&#XA0;&#XA0;Floating comments</a>
</li><li class="li-toc"><a href="extn.html#sec275">8.25.2&#XA0;&#XA0;Item comments</a>
</li><li class="li-toc"><a href="extn.html#sec276">8.25.3&#XA0;&#XA0;Label comments</a>
</li></ul>
</li><li class="li-toc"><a href="extn.html#s%3Aindex-operators">8.26&#XA0;&#XA0;Extended indexing operators  </a>
</li></ul>
</li></ul>
</li><li class="li-toc"><a href="index.html#sec278">Part&#XA0;III&#XA0;&#XA0;The OCaml tools</a>
<ul class="ftoc2"><li class="li-toc">
<a href="comp.html#sec279">Chapter&#XA0;9&#XA0;&#XA0;Batch compilation (ocamlc)</a>
<ul class="ftoc3"><li class="li-toc">
<a href="comp.html#sec280">9.1&#XA0;&#XA0;Overview of the compiler</a>
</li><li class="li-toc"><a href="comp.html#sec281">9.2&#XA0;&#XA0;Options</a>
</li><li class="li-toc"><a href="comp.html#sec283">9.3&#XA0;&#XA0;Modules and the file system</a>
</li><li class="li-toc"><a href="comp.html#sec284">9.4&#XA0;&#XA0;Common errors</a>
</li><li class="li-toc"><a href="comp.html#sec285">9.5&#XA0;&#XA0;Warning reference</a>
<ul class="ftoc4"><li class="li-toc">
<a href="comp.html#sec286">9.5.1&#XA0;&#XA0;Warning 9: missing fields in a record pattern</a>
</li><li class="li-toc"><a href="comp.html#sec287">9.5.2&#XA0;&#XA0;Warning 52: fragile constant pattern</a>
</li><li class="li-toc"><a href="comp.html#sec288">9.5.3&#XA0;&#XA0;Warning 57: Ambiguous or-pattern variables under guard</a>
</li></ul>
</li></ul>
</li><li class="li-toc"><a href="toplevel.html#sec289">Chapter&#XA0;10&#XA0;&#XA0;The toplevel system or REPL (ocaml)</a>
<ul class="ftoc3"><li class="li-toc">
<a href="toplevel.html#sec290">10.1&#XA0;&#XA0;Options</a>
</li><li class="li-toc"><a href="toplevel.html#sec291">10.2&#XA0;&#XA0;Toplevel directives</a>
</li><li class="li-toc"><a href="toplevel.html#sec292">10.3&#XA0;&#XA0;The toplevel and the module system</a>
</li><li class="li-toc"><a href="toplevel.html#sec293">10.4&#XA0;&#XA0;Common errors</a>
</li><li class="li-toc"><a href="toplevel.html#sec294">10.5&#XA0;&#XA0;Building custom toplevel systems: <span class="c003">ocamlmktop</span></a>
<ul class="ftoc4"><li class="li-toc">
<a href="toplevel.html#sec295">10.5.1&#XA0;&#XA0;Options</a>
</li></ul>
</li><li class="li-toc"><a href="toplevel.html#sec296">10.6&#XA0;&#XA0;The native toplevel: <span class="c003">ocamlnat</span> (experimental)</a>
</li></ul>
</li><li class="li-toc"><a href="runtime.html#sec297">Chapter&#XA0;11&#XA0;&#XA0;The runtime system (ocamlrun)</a>
<ul class="ftoc3"><li class="li-toc">
<a href="runtime.html#sec298">11.1&#XA0;&#XA0;Overview</a>
</li><li class="li-toc"><a href="runtime.html#sec299">11.2&#XA0;&#XA0;Options</a>
</li><li class="li-toc"><a href="runtime.html#sec300">11.3&#XA0;&#XA0;Dynamic loading of shared libraries</a>
</li><li class="li-toc"><a href="runtime.html#sec301">11.4&#XA0;&#XA0;Common errors</a>
</li></ul>
</li><li class="li-toc"><a href="native.html#sec302">Chapter&#XA0;12&#XA0;&#XA0;Native-code compilation (ocamlopt)</a>
<ul class="ftoc3"><li class="li-toc">
<a href="native.html#sec303">12.1&#XA0;&#XA0;Overview of the compiler</a>
</li><li class="li-toc"><a href="native.html#sec304">12.2&#XA0;&#XA0;Options</a>
</li><li class="li-toc"><a href="native.html#sec308">12.3&#XA0;&#XA0;Common errors</a>
</li><li class="li-toc"><a href="native.html#sec309">12.4&#XA0;&#XA0;Running executables produced by ocamlopt</a>
</li><li class="li-toc"><a href="native.html#sec310">12.5&#XA0;&#XA0;Compatibility with the bytecode compiler</a>
</li></ul>
</li><li class="li-toc"><a href="lexyacc.html#sec311">Chapter&#XA0;13&#XA0;&#XA0;Lexer and parser generators (ocamllex, ocamlyacc)</a>
<ul class="ftoc3"><li class="li-toc">
<a href="lexyacc.html#sec312">13.1&#XA0;&#XA0;Overview of <span class="c003">ocamllex</span></a>
<ul class="ftoc4"><li class="li-toc">
<a href="lexyacc.html#sec313">13.1.1&#XA0;&#XA0;Options</a>
</li></ul>
</li><li class="li-toc"><a href="lexyacc.html#sec314">13.2&#XA0;&#XA0;Syntax of lexer definitions</a>
<ul class="ftoc4"><li class="li-toc">
<a href="lexyacc.html#sec315">13.2.1&#XA0;&#XA0;Header and trailer</a>
</li><li class="li-toc"><a href="lexyacc.html#sec316">13.2.2&#XA0;&#XA0;Naming regular expressions</a>
</li><li class="li-toc"><a href="lexyacc.html#sec317">13.2.3&#XA0;&#XA0;Entry points</a>
</li><li class="li-toc"><a href="lexyacc.html#sec318">13.2.4&#XA0;&#XA0;Regular expressions</a>
</li><li class="li-toc"><a href="lexyacc.html#sec319">13.2.5&#XA0;&#XA0;Actions</a>
</li><li class="li-toc"><a href="lexyacc.html#sec320">13.2.6&#XA0;&#XA0;Variables in regular expressions</a>
</li><li class="li-toc"><a href="lexyacc.html#sec321">13.2.7&#XA0;&#XA0;Refill handlers</a>
</li><li class="li-toc"><a href="lexyacc.html#sec322">13.2.8&#XA0;&#XA0;Reserved identifiers</a>
</li></ul>
</li><li class="li-toc"><a href="lexyacc.html#sec323">13.3&#XA0;&#XA0;Overview of <span class="c003">ocamlyacc</span></a>
</li><li class="li-toc"><a href="lexyacc.html#sec324">13.4&#XA0;&#XA0;Syntax of grammar definitions</a>
<ul class="ftoc4"><li class="li-toc">
<a href="lexyacc.html#sec325">13.4.1&#XA0;&#XA0;Header and trailer</a>
</li><li class="li-toc"><a href="lexyacc.html#sec326">13.4.2&#XA0;&#XA0;Declarations</a>
</li><li class="li-toc"><a href="lexyacc.html#sec327">13.4.3&#XA0;&#XA0;Rules</a>
</li><li class="li-toc"><a href="lexyacc.html#sec328">13.4.4&#XA0;&#XA0;Error handling</a>
</li></ul>
</li><li class="li-toc"><a href="lexyacc.html#sec329">13.5&#XA0;&#XA0;Options</a>
</li><li class="li-toc"><a href="lexyacc.html#sec330">13.6&#XA0;&#XA0;A complete example</a>
</li><li class="li-toc"><a href="lexyacc.html#sec331">13.7&#XA0;&#XA0;Common errors</a>
</li></ul>
</li><li class="li-toc"><a href="depend.html#sec332">Chapter&#XA0;14&#XA0;&#XA0;Dependency generator (ocamldep)</a>
<ul class="ftoc3"><li class="li-toc">
<a href="depend.html#sec333">14.1&#XA0;&#XA0;Options</a>
</li><li class="li-toc"><a href="depend.html#sec334">14.2&#XA0;&#XA0;A typical Makefile</a>
</li></ul>
</li><li class="li-toc"><a href="browser.html#sec335">Chapter&#XA0;15&#XA0;&#XA0;The browser/editor (ocamlbrowser)</a>
</li><li class="li-toc"><a href="ocamldoc.html#sec336">Chapter&#XA0;16&#XA0;&#XA0;The documentation generator (ocamldoc)</a>
<ul class="ftoc3"><li class="li-toc">
<a href="ocamldoc.html#sec337">16.1&#XA0;&#XA0;Usage</a>
<ul class="ftoc4"><li class="li-toc">
<a href="ocamldoc.html#sec338">16.1.1&#XA0;&#XA0;Invocation</a>
</li><li class="li-toc"><a href="ocamldoc.html#sec347">16.1.2&#XA0;&#XA0;Merging of module information</a>
</li><li class="li-toc"><a href="ocamldoc.html#sec348">16.1.3&#XA0;&#XA0;Coding rules</a>
</li></ul>
</li><li class="li-toc"><a href="ocamldoc.html#sec349">16.2&#XA0;&#XA0;Syntax of documentation comments</a>
<ul class="ftoc4"><li class="li-toc">
<a href="ocamldoc.html#sec350">16.2.1&#XA0;&#XA0;Placement of documentation comments</a>
</li><li class="li-toc"><a href="ocamldoc.html#sec353">16.2.2&#XA0;&#XA0;The Stop special comment</a>
</li><li class="li-toc"><a href="ocamldoc.html#sec354">16.2.3&#XA0;&#XA0;Syntax of documentation comments</a>
</li><li class="li-toc"><a href="ocamldoc.html#sec355">16.2.4&#XA0;&#XA0;Text formatting</a>
</li><li class="li-toc"><a href="ocamldoc.html#sec361">16.2.5&#XA0;&#XA0;Documentation tags (@-tags)</a>
</li></ul>
</li><li class="li-toc"><a href="ocamldoc.html#sec364">16.3&#XA0;&#XA0;Custom generators</a>
<ul class="ftoc4"><li class="li-toc">
<a href="ocamldoc.html#sec365">16.3.1&#XA0;&#XA0;The generator modules</a>
</li><li class="li-toc"><a href="ocamldoc.html#sec366">16.3.2&#XA0;&#XA0;Handling custom tags</a>
</li></ul>
</li><li class="li-toc"><a href="ocamldoc.html#sec369">16.4&#XA0;&#XA0;Adding command line options</a>
<ul class="ftoc4"><li class="li-toc">
<a href="ocamldoc.html#sec370">16.4.1&#XA0;&#XA0;Compilation and usage</a>
</li></ul>
</li></ul>
</li><li class="li-toc"><a href="debugger.html#sec373">Chapter&#XA0;17&#XA0;&#XA0;The debugger (ocamldebug)</a>
<ul class="ftoc3"><li class="li-toc">
<a href="debugger.html#sec374">17.1&#XA0;&#XA0;Compiling for debugging</a>
</li><li class="li-toc"><a href="debugger.html#sec375">17.2&#XA0;&#XA0;Invocation</a>
<ul class="ftoc4"><li class="li-toc">
<a href="debugger.html#sec376">17.2.1&#XA0;&#XA0;Starting the debugger</a>
</li><li class="li-toc"><a href="debugger.html#sec377">17.2.2&#XA0;&#XA0;Initialization file</a>
</li><li class="li-toc"><a href="debugger.html#sec378">17.2.3&#XA0;&#XA0;Exiting the debugger</a>
</li></ul>
</li><li class="li-toc"><a href="debugger.html#sec379">17.3&#XA0;&#XA0;Commands</a>
<ul class="ftoc4"><li class="li-toc">
<a href="debugger.html#sec380">17.3.1&#XA0;&#XA0;Getting help</a>
</li><li class="li-toc"><a href="debugger.html#sec381">17.3.2&#XA0;&#XA0;Accessing the debugger state</a>
</li></ul>
</li><li class="li-toc"><a href="debugger.html#sec382">17.4&#XA0;&#XA0;Executing a program</a>
<ul class="ftoc4"><li class="li-toc">
<a href="debugger.html#sec383">17.4.1&#XA0;&#XA0;Events</a>
</li><li class="li-toc"><a href="debugger.html#sec384">17.4.2&#XA0;&#XA0;Starting the debugged program</a>
</li><li class="li-toc"><a href="debugger.html#sec385">17.4.3&#XA0;&#XA0;Running the program</a>
</li><li class="li-toc"><a href="debugger.html#sec386">17.4.4&#XA0;&#XA0;Time travel</a>
</li><li class="li-toc"><a href="debugger.html#sec387">17.4.5&#XA0;&#XA0;Killing the program</a>
</li></ul>
</li><li class="li-toc"><a href="debugger.html#sec388">17.5&#XA0;&#XA0;Breakpoints</a>
</li><li class="li-toc"><a href="debugger.html#sec389">17.6&#XA0;&#XA0;The call stack</a>
</li><li class="li-toc"><a href="debugger.html#sec390">17.7&#XA0;&#XA0;Examining variable values</a>
</li><li class="li-toc"><a href="debugger.html#sec391">17.8&#XA0;&#XA0;Controlling the debugger</a>
<ul class="ftoc4"><li class="li-toc">
<a href="debugger.html#sec392">17.8.1&#XA0;&#XA0;Setting the program name and arguments</a>
</li><li class="li-toc"><a href="debugger.html#sec393">17.8.2&#XA0;&#XA0;How programs are loaded</a>
</li><li class="li-toc"><a href="debugger.html#sec394">17.8.3&#XA0;&#XA0;Search path for files</a>
</li><li class="li-toc"><a href="debugger.html#sec395">17.8.4&#XA0;&#XA0;Working directory</a>
</li><li class="li-toc"><a href="debugger.html#sec396">17.8.5&#XA0;&#XA0;Turning reverse execution on and off</a>
</li><li class="li-toc"><a href="debugger.html#sec397">17.8.6&#XA0;&#XA0;Communication between the debugger and the program</a>
</li><li class="li-toc"><a href="debugger.html#sec398">17.8.7&#XA0;&#XA0;Fine-tuning the debugger</a>
</li><li class="li-toc"><a href="debugger.html#sec399">17.8.8&#XA0;&#XA0;User-defined printers</a>
</li></ul>
</li><li class="li-toc"><a href="debugger.html#sec400">17.9&#XA0;&#XA0;Miscellaneous commands</a>
</li><li class="li-toc"><a href="debugger.html#sec401">17.10&#XA0;&#XA0;Running the debugger under Emacs</a>
</li></ul>
</li><li class="li-toc"><a href="profil.html#sec402">Chapter&#XA0;18&#XA0;&#XA0;Profiling (ocamlprof)</a>
<ul class="ftoc3"><li class="li-toc">
<a href="profil.html#sec403">18.1&#XA0;&#XA0;Compiling for profiling</a>
</li><li class="li-toc"><a href="profil.html#sec407">18.2&#XA0;&#XA0;Profiling an execution</a>
</li><li class="li-toc"><a href="profil.html#sec408">18.3&#XA0;&#XA0;Printing profiling information</a>
</li><li class="li-toc"><a href="profil.html#sec409">18.4&#XA0;&#XA0;Time profiling</a>
</li></ul>
</li><li class="li-toc"><a href="manual033.html#sec411">Chapter&#XA0;19&#XA0;&#XA0;The ocamlbuild compilation manager</a>
</li><li class="li-toc"><a href="intfc.html#c%3Aintf-c">Chapter&#XA0;20&#XA0;&#XA0;Interfacing C with OCaml</a>
<ul class="ftoc3"><li class="li-toc">
<a href="intfc.html#sec413">20.1&#XA0;&#XA0;Overview and compilation information</a>
<ul class="ftoc4"><li class="li-toc">
<a href="intfc.html#sec414">20.1.1&#XA0;&#XA0;Declaring primitives</a>
</li><li class="li-toc"><a href="intfc.html#sec415">20.1.2&#XA0;&#XA0;Implementing primitives</a>
</li><li class="li-toc"><a href="intfc.html#sec416">20.1.3&#XA0;&#XA0;Statically linking C code with OCaml code</a>
</li><li class="li-toc"><a href="intfc.html#sec417">20.1.4&#XA0;&#XA0;Dynamically linking C code with OCaml code</a>
</li><li class="li-toc"><a href="intfc.html#sec418">20.1.5&#XA0;&#XA0;Choosing between static linking and dynamic linking</a>
</li><li class="li-toc"><a href="intfc.html#sec419">20.1.6&#XA0;&#XA0;Building standalone custom runtime systems</a>
</li></ul>
</li><li class="li-toc"><a href="intfc.html#sec420">20.2&#XA0;&#XA0;The <span class="c003">value</span> type</a>
<ul class="ftoc4"><li class="li-toc">
<a href="intfc.html#sec421">20.2.1&#XA0;&#XA0;Integer values</a>
</li><li class="li-toc"><a href="intfc.html#sec422">20.2.2&#XA0;&#XA0;Blocks</a>
</li><li class="li-toc"><a href="intfc.html#sec423">20.2.3&#XA0;&#XA0;Pointers outside the heap</a>
</li></ul>
</li><li class="li-toc"><a href="intfc.html#sec424">20.3&#XA0;&#XA0;Representation of OCaml data types</a>
<ul class="ftoc4"><li class="li-toc">
<a href="intfc.html#sec425">20.3.1&#XA0;&#XA0;Atomic types</a>
</li><li class="li-toc"><a href="intfc.html#sec426">20.3.2&#XA0;&#XA0;Tuples and records</a>
</li><li class="li-toc"><a href="intfc.html#sec427">20.3.3&#XA0;&#XA0;Arrays</a>
</li><li class="li-toc"><a href="intfc.html#sec428">20.3.4&#XA0;&#XA0;Concrete data types</a>
</li><li class="li-toc"><a href="intfc.html#sec429">20.3.5&#XA0;&#XA0;Objects</a>
</li><li class="li-toc"><a href="intfc.html#sec430">20.3.6&#XA0;&#XA0;Polymorphic variants</a>
</li></ul>
</li><li class="li-toc"><a href="intfc.html#sec431">20.4&#XA0;&#XA0;Operations on values</a>
<ul class="ftoc4"><li class="li-toc">
<a href="intfc.html#sec432">20.4.1&#XA0;&#XA0;Kind tests</a>
</li><li class="li-toc"><a href="intfc.html#sec433">20.4.2&#XA0;&#XA0;Operations on integers</a>
</li><li class="li-toc"><a href="intfc.html#sec434">20.4.3&#XA0;&#XA0;Accessing blocks</a>
</li><li class="li-toc"><a href="intfc.html#sec435">20.4.4&#XA0;&#XA0;Allocating blocks</a>
</li><li class="li-toc"><a href="intfc.html#sec438">20.4.5&#XA0;&#XA0;Raising exceptions</a>
</li></ul>
</li><li class="li-toc"><a href="intfc.html#sec439">20.5&#XA0;&#XA0;Living in harmony with the garbage collector</a>
<ul class="ftoc4"><li class="li-toc">
<a href="intfc.html#sec440">20.5.1&#XA0;&#XA0;Simple interface</a>
</li><li class="li-toc"><a href="intfc.html#sec446">20.5.2&#XA0;&#XA0;Low-level interface</a>
</li></ul>
</li><li class="li-toc"><a href="intfc.html#sec447">20.6&#XA0;&#XA0;A complete example</a>
</li><li class="li-toc"><a href="intfc.html#sec448">20.7&#XA0;&#XA0;Advanced topic: callbacks from C to OCaml</a>
<ul class="ftoc4"><li class="li-toc">
<a href="intfc.html#sec449">20.7.1&#XA0;&#XA0;Applying OCaml closures from C</a>
</li><li class="li-toc"><a href="intfc.html#sec451">20.7.2&#XA0;&#XA0;Obtaining or registering OCaml closures for use in C functions</a>
</li><li class="li-toc"><a href="intfc.html#sec452">20.7.3&#XA0;&#XA0;Registering OCaml exceptions for use in C functions</a>
</li><li class="li-toc"><a href="intfc.html#sec453">20.7.4&#XA0;&#XA0;Main program in C</a>
</li><li class="li-toc"><a href="intfc.html#sec454">20.7.5&#XA0;&#XA0;Embedding the OCaml code in the C code</a>
</li></ul>
</li><li class="li-toc"><a href="intfc.html#sec458">20.8&#XA0;&#XA0;Advanced example with callbacks</a>
</li><li class="li-toc"><a href="intfc.html#sec459">20.9&#XA0;&#XA0;Advanced topic: custom blocks</a>
<ul class="ftoc4"><li class="li-toc">
<a href="intfc.html#sec460">20.9.1&#XA0;&#XA0;The <span class="c003">struct custom_operations</span></a>
</li><li class="li-toc"><a href="intfc.html#sec461">20.9.2&#XA0;&#XA0;Allocating custom blocks</a>
</li><li class="li-toc"><a href="intfc.html#sec462">20.9.3&#XA0;&#XA0;Accessing custom blocks</a>
</li><li class="li-toc"><a href="intfc.html#sec463">20.9.4&#XA0;&#XA0;Writing custom serialization and deserialization functions</a>
</li><li class="li-toc"><a href="intfc.html#sec464">20.9.5&#XA0;&#XA0;Choosing identifiers</a>
</li><li class="li-toc"><a href="intfc.html#sec465">20.9.6&#XA0;&#XA0;Finalized blocks</a>
</li></ul>
</li><li class="li-toc"><a href="intfc.html#sec466">20.10&#XA0;&#XA0;Advanced topic: cheaper C call</a>
<ul class="ftoc4"><li class="li-toc">
<a href="intfc.html#sec467">20.10.1&#XA0;&#XA0;Passing unboxed values</a>
</li><li class="li-toc"><a href="intfc.html#sec468">20.10.2&#XA0;&#XA0;Direct C call</a>
</li><li class="li-toc"><a href="intfc.html#sec469">20.10.3&#XA0;&#XA0;Example: calling C library functions without indirection</a>
</li></ul>
</li><li class="li-toc"><a href="intfc.html#sec470">20.11&#XA0;&#XA0;Advanced topic: multithreading</a>
<ul class="ftoc4"><li class="li-toc">
<a href="intfc.html#sec471">20.11.1&#XA0;&#XA0;Registering threads created from C</a>
</li><li class="li-toc"><a href="intfc.html#sec472">20.11.2&#XA0;&#XA0;Parallel execution of long-running C code</a>
</li></ul>
</li><li class="li-toc"><a href="intfc.html#sec473">20.12&#XA0;&#XA0;Advanced topic: interfacing with Windows Unicode APIs</a>
</li><li class="li-toc"><a href="intfc.html#sec475">20.13&#XA0;&#XA0;Building mixed C/OCaml libraries: <span class="c003">ocamlmklib</span></a>
</li></ul>
</li><li class="li-toc"><a href="flambda.html#sec477">Chapter&#XA0;21&#XA0;&#XA0;Optimisation with Flambda</a>
<ul class="ftoc3"><li class="li-toc">
<a href="flambda.html#sec478">21.1&#XA0;&#XA0;Overview</a>
</li><li class="li-toc"><a href="flambda.html#sec479">21.2&#XA0;&#XA0;Command-line flags</a>
<ul class="ftoc4"><li class="li-toc">
<a href="flambda.html#sec481">21.2.1&#XA0;&#XA0;Specification of optimisation parameters by round</a>
</li></ul>
</li><li class="li-toc"><a href="flambda.html#sec482">21.3&#XA0;&#XA0;Inlining</a>
<ul class="ftoc4"><li class="li-toc">
<a href="flambda.html#sec484">21.3.1&#XA0;&#XA0;Classic inlining heuristic</a>
</li><li class="li-toc"><a href="flambda.html#sec485">21.3.2&#XA0;&#XA0;Overview of &#X201C;Flambda&#X201D; inlining heuristics</a>
</li><li class="li-toc"><a href="flambda.html#sec486">21.3.3&#XA0;&#XA0;Handling of specific language constructs</a>
</li><li class="li-toc"><a href="flambda.html#sec490">21.3.4&#XA0;&#XA0;Inlining reports</a>
</li><li class="li-toc"><a href="flambda.html#sec491">21.3.5&#XA0;&#XA0;Assessment of inlining benefit</a>
</li><li class="li-toc"><a href="flambda.html#sec492">21.3.6&#XA0;&#XA0;Control of speculation</a>
</li></ul>
</li><li class="li-toc"><a href="flambda.html#sec493">21.4&#XA0;&#XA0;Specialisation</a>
<ul class="ftoc4"><li class="li-toc">
<a href="flambda.html#sec496">21.4.1&#XA0;&#XA0;Assessment of specialisation benefit</a>
</li></ul>
</li><li class="li-toc"><a href="flambda.html#sec497">21.5&#XA0;&#XA0;Default settings of parameters</a>
<ul class="ftoc4"><li class="li-toc">
<a href="flambda.html#sec498">21.5.1&#XA0;&#XA0;Settings at -O2 optimisation level</a>
</li><li class="li-toc"><a href="flambda.html#sec499">21.5.2&#XA0;&#XA0;Settings at -O3 optimisation level</a>
</li></ul>
</li><li class="li-toc"><a href="flambda.html#sec500">21.6&#XA0;&#XA0;Manual control of inlining and specialisation</a>
</li><li class="li-toc"><a href="flambda.html#sec502">21.7&#XA0;&#XA0;Simplification</a>
</li><li class="li-toc"><a href="flambda.html#sec503">21.8&#XA0;&#XA0;Other code motion transformations</a>
<ul class="ftoc4"><li class="li-toc">
<a href="flambda.html#sec504">21.8.1&#XA0;&#XA0;Lifting of constants</a>
</li><li class="li-toc"><a href="flambda.html#sec506">21.8.2&#XA0;&#XA0;Lifting of toplevel let bindings</a>
</li></ul>
</li><li class="li-toc"><a href="flambda.html#sec507">21.9&#XA0;&#XA0;Unboxing transformations</a>
<ul class="ftoc4"><li class="li-toc">
<a href="flambda.html#sec508">21.9.1&#XA0;&#XA0;Unboxing of closure variables</a>
</li><li class="li-toc"><a href="flambda.html#sec510">21.9.2&#XA0;&#XA0;Unboxing of specialised arguments</a>
</li><li class="li-toc"><a href="flambda.html#sec512">21.9.3&#XA0;&#XA0;Unboxing of closures</a>
</li></ul>
</li><li class="li-toc"><a href="flambda.html#sec515">21.10&#XA0;&#XA0;Removal of unused code and values</a>
<ul class="ftoc4"><li class="li-toc">
<a href="flambda.html#sec516">21.10.1&#XA0;&#XA0;Removal of redundant let expressions</a>
</li><li class="li-toc"><a href="flambda.html#sec517">21.10.2&#XA0;&#XA0;Removal of redundant program constructs</a>
</li><li class="li-toc"><a href="flambda.html#sec518">21.10.3&#XA0;&#XA0;Removal of unused arguments</a>
</li><li class="li-toc"><a href="flambda.html#sec519">21.10.4&#XA0;&#XA0;Removal of unused closure variables</a>
</li></ul>
</li><li class="li-toc"><a href="flambda.html#sec520">21.11&#XA0;&#XA0;Other code transformations</a>
<ul class="ftoc4"><li class="li-toc">
<a href="flambda.html#sec521">21.11.1&#XA0;&#XA0;Transformation of non-escaping references into mutable variables</a>
</li><li class="li-toc"><a href="flambda.html#sec522">21.11.2&#XA0;&#XA0;Substitution of closure variables for specialised arguments</a>
</li></ul>
</li><li class="li-toc"><a href="flambda.html#sec523">21.12&#XA0;&#XA0;Treatment of effects</a>
</li><li class="li-toc"><a href="flambda.html#sec524">21.13&#XA0;&#XA0;Compilation of statically-allocated modules</a>
</li><li class="li-toc"><a href="flambda.html#sec525">21.14&#XA0;&#XA0;Inhibition of optimisation</a>
</li><li class="li-toc"><a href="flambda.html#sec526">21.15&#XA0;&#XA0;Use of unsafe operations</a>
</li><li class="li-toc"><a href="flambda.html#sec527">21.16&#XA0;&#XA0;Glossary</a>
</li></ul>
</li><li class="li-toc"><a href="spacetime.html#sec528">Chapter&#XA0;22&#XA0;&#XA0;Memory profiling with Spacetime</a>
<ul class="ftoc3"><li class="li-toc">
<a href="spacetime.html#sec529">22.1&#XA0;&#XA0;Overview</a>
</li><li class="li-toc"><a href="spacetime.html#sec530">22.2&#XA0;&#XA0;How to use it</a>
<ul class="ftoc4"><li class="li-toc">
<a href="spacetime.html#sec531">22.2.1&#XA0;&#XA0;Building</a>
</li><li class="li-toc"><a href="spacetime.html#sec532">22.2.2&#XA0;&#XA0;Running</a>
</li><li class="li-toc"><a href="spacetime.html#sec533">22.2.3&#XA0;&#XA0;Analysis</a>
</li></ul>
</li><li class="li-toc"><a href="spacetime.html#sec534">22.3&#XA0;&#XA0;Runtime overhead</a>
</li><li class="li-toc"><a href="spacetime.html#sec535">22.4&#XA0;&#XA0;For developers</a>
</li></ul>
</li><li class="li-toc"><a href="afl-fuzz.html#sec536">Chapter&#XA0;23&#XA0;&#XA0;Fuzzing with afl-fuzz</a>
<ul class="ftoc3"><li class="li-toc">
<a href="afl-fuzz.html#sec537">23.1&#XA0;&#XA0;Overview</a>
</li><li class="li-toc"><a href="afl-fuzz.html#sec538">23.2&#XA0;&#XA0;Generating instrumentation</a>
<ul class="ftoc4"><li class="li-toc">
<a href="afl-fuzz.html#sec539">23.2.1&#XA0;&#XA0;Advanced options</a>
</li></ul>
</li><li class="li-toc"><a href="afl-fuzz.html#sec540">23.3&#XA0;&#XA0;Example</a>
</li></ul>
</li><li class="li-toc"><a href="plugins.html#c%3Aplugins">Chapter&#XA0;24&#XA0;&#XA0;Compiler plugins</a>
<ul class="ftoc3"><li class="li-toc">
<a href="plugins.html#sec542">24.1&#XA0;&#XA0;Overview</a>
</li><li class="li-toc"><a href="plugins.html#sec543">24.2&#XA0;&#XA0;Basic example</a>
</li></ul>
</li></ul>
</li><li class="li-toc"><a href="index.html#sec544">Part&#XA0;IV&#XA0;&#XA0;The OCaml library</a>
<ul class="ftoc2"><li class="li-toc">
<a href="core.html#sec545">Chapter&#XA0;25&#XA0;&#XA0;The core library</a>
<ul class="ftoc3"><li class="li-toc">
<a href="core.html#sec547">25.1&#XA0;&#XA0;Built-in types and predefined exceptions</a>
</li><li class="li-toc"><a href="core.html#sec550">25.2&#XA0;&#XA0;Module <span class="c003">Pervasives</span>: the initially opened module</a>
</li></ul>
</li><li class="li-toc"><a href="stdlib.html#sec551">Chapter&#XA0;26&#XA0;&#XA0;The standard library</a>
</li><li class="li-toc"><a href="parsing.html#sec553">Chapter&#XA0;27&#XA0;&#XA0;The compiler front-end</a>
</li><li class="li-toc"><a href="libunix.html#sec554">Chapter&#XA0;28&#XA0;&#XA0;The unix library: Unix system calls</a>
</li><li class="li-toc"><a href="libnum.html#sec555">Chapter&#XA0;29&#XA0;&#XA0;The num library: arbitrary-precision rational arithmetic</a>
</li><li class="li-toc"><a href="libstr.html#sec556">Chapter&#XA0;30&#XA0;&#XA0;The str library: regular expressions and string processing</a>
</li><li class="li-toc"><a href="libthreads.html#sec557">Chapter&#XA0;31&#XA0;&#XA0;The threads library</a>
</li><li class="li-toc"><a href="libgraph.html#sec558">Chapter&#XA0;32&#XA0;&#XA0;The graphics library</a>
</li><li class="li-toc"><a href="libdynlink.html#sec559">Chapter&#XA0;33&#XA0;&#XA0;The dynlink library: dynamic loading and linking of object files</a>
</li><li class="li-toc"><a href="libbigarray.html#sec560">Chapter&#XA0;34&#XA0;&#XA0;The bigarray library</a>
<ul class="ftoc3"><li class="li-toc">
<a href="libbigarray.html#sec561">34.1&#XA0;&#XA0;Module <span class="c003">Bigarray</span>: large, multi-dimensional, numerical arrays</a>
</li><li class="li-toc"><a href="libbigarray.html#sec562">34.2&#XA0;&#XA0;Big arrays in the OCaml-C interface</a>
<ul class="ftoc4"><li class="li-toc">
<a href="libbigarray.html#sec563">34.2.1&#XA0;&#XA0;Include file</a>
</li><li class="li-toc"><a href="libbigarray.html#sec564">34.2.2&#XA0;&#XA0;Accessing an OCaml bigarray from C or Fortran</a>
</li><li class="li-toc"><a href="libbigarray.html#sec565">34.2.3&#XA0;&#XA0;Wrapping a C or Fortran array as an OCaml big array</a>
</li></ul>
</li></ul>
</li></ul>
</li><li class="li-toc"><a href="index.html#sec566">Part&#XA0;V&#XA0;&#XA0;Appendix</a>
</li></ul><hr>
<a href="index.html"><img src="contents_motif.gif" alt="Up"></a>
<a href="foreword.html"><img src="next_motif.gif" alt="Next"></a>
</body>
</html>
